Initialize export of point site data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | pointfile |
file containing coordinate of points |
||
character(len=*), | intent(in) | :: | path_out |
path of output folder |
||
type(DateTime), | intent(in) | :: | time |
start time |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=short), | public | :: | err_io | ||||
integer(kind=short), | public | :: | fileunit |
SUBROUTINE MeteoPointInit & ! ( pointfile, path_out, time ) IMPLICIT NONE !Arguments with intent (in): CHARACTER (LEN = *), INTENT(IN) :: pointfile !!file containing coordinate of points CHARACTER (LEN = *), INTENT(IN) :: path_out !!path of output folder TYPE (DateTime), INTENT(IN) :: time !!start time !local declarations INTEGER (KIND = short) :: err_io INTEGER (KIND = short) :: fileunit !-------------------------end of declarations---------------------------------- timePointExport = time !open point file fileunit = GetUnit () OPEN ( unit = fileunit, file = pointfile(1:LEN_TRIM(pointfile)), & status='OLD', iostat = err_io ) IF ( err_io /= 0 ) THEN !file does not exist CALL Catch ('error', 'Meteo', 'out point file does not exist') END IF !Read metadata CALL ReadMetadata (fileunit, sites) !set time increment timeIncrementSites = sites % timeIncrement !check dt IF (.NOT. ( MOD ( sites % timeIncrement, dtMeteo ) == 0 ) ) THEN CALL Catch ('error', 'Meteo', 'dt out sites must be multiple of dtMeteo ') END IF CLOSE ( fileunit ) !create virtual network and initialize file for output !precipitation IF ( dtPrecipitation > 0 ) THEN fileUnitPointPrecipitation = GetUnit () OPEN ( unit = fileUnitPointPrecipitation, & file = TRIM(path_out) // 'point_precipitation.fts' ) CALL CopyNetwork ( sites, sitesPrecipitation ) sitesPrecipitation % description = 'precipitation data exported from FEST' sitesPrecipitation % unit = 'mm' sitesPrecipitation % offsetZ = 2. CALL WriteMetadata ( network = sitesPrecipitation, & fileunit = fileUnitPointPrecipitation ) CALL WriteData (sitesPrecipitation, fileUnitPointPrecipitation, .TRUE.) END IF !air temperature IF ( dtTemperature > 0 ) THEN fileUnitPointTemperature = GetUnit () OPEN ( unit = fileUnitPointTemperature, & file = TRIM(path_out) // 'point_temperature.fts' ) CALL CopyNetwork ( sites, sitesTemperature ) sitesTemperature % description = 'air temperature data exported from FEST' sitesTemperature % unit = 'degree Celsius' sitesTemperature % offsetZ = 2. CALL WriteMetadata ( network = sitesTemperature, & fileunit = fileUnitPointTemperature ) CALL WriteData (sitesTemperature, fileUnitPointTemperature, .TRUE.) END IF !solar radiation IF ( dtRadiation > 0 ) THEN fileUnitPointRadiation = GetUnit () OPEN ( unit = fileUnitPointRadiation, & file = TRIM(path_out) // 'point_radiation.fts' ) CALL CopyNetwork ( sites, sitesRadiation ) sitesRadiation % description = 'solar radiation data exported from FEST' sitesRadiation % unit = 'w/m2' sitesRadiation % offsetZ = 2. CALL WriteMetadata ( network = sitesRadiation, & fileunit = fileUnitPointRadiation ) CALL WriteData (sitesRadiation, fileUnitPointRadiation, .TRUE.) END IF !air relative humidity IF ( dtRelHumidity > 0 ) THEN fileUnitPointRH = GetUnit () OPEN ( unit = fileUnitPointRH, & file = TRIM(path_out) // 'point_RH.fts' ) CALL CopyNetwork ( sites, sitesRH ) sitesRH % description = 'air relative humidity data exported from FEST' sitesRH % unit = '% 0-100' sitesRH % offsetZ = 2. CALL WriteMetadata ( network = sitesRH, & fileunit = fileUnitPointRH ) CALL WriteData (sitesRH, fileUnitPointRH, .TRUE.) END IF !wind speed IF ( dtWindSpeed > 0 ) THEN fileUnitPointWS = GetUnit () OPEN ( unit = fileUnitPointWS, & file = TRIM(path_out) // 'point_WS.fts' ) CALL CopyNetwork ( sites, sitesWS ) sitesWS % description = 'wind speed data exported from FEST' sitesWS % unit = 'm/s' sitesWS % offsetZ = 10. CALL WriteMetadata ( network = sitesWS, & fileunit = fileUnitPointWS ) CALL WriteData (sitesWS, fileUnitPointWS, .TRUE.) END IF ! destroy sites CALL DestroyNetwork ( sites ) RETURN END SUBROUTINE MeteoPointInit